
from fastapi import HTTPException



class AGVError(HTTPException):
    status_code = 222 
    errors = {  
        40000: "请求不可用",  
        40001: "必要的请求参数缺失",  
        40002: "请求参数类型错误",  
        40003: "请求参数不合法",  
        40004: "运行模式错误",  
        40005: "非法的地图名",  
        40006: "正在烧写固件",  
        40007: "烧写固件错误",  
        40008: "文件名非法",  
        40010: "关机指令出现错误",  
        40011: "重启指令出现错误",  
        40012: "调度系统控制中",  
        40013: "robod 错误",  
        40014: "robod 警告",  
        40015: "正在手动充电，不能运动",  
        40016: "急停状态中",  
        40020: "控制权被抢占",  
        40050: "地图解析出错",  
        40051: "地图不存在",  
        40052: "加载地图错误",  
        40053: "重载地图错误",  
        40054: "空地图",  
        40055: "文件不存在",  
        40056: "地图转换失败",  
        40057: "当前无可用 rawmap 文件",  
        40058: "当前无可用 calib 文件",  
        40060: "音频文件不存在",  
        40061: "播放音频出错",  
        40062: "上传音频文件失败",  
        40063: "音频正在播放中",  
        40069: "保存模型文件出错",  
        40070: "模型文件解析错误",  
        40071: "标定数据解析错误",  
        40072: "保存标定文件出错",  
        40073: "清除标定数据出错",  
        40100: "请求执行超时",  
        40101: "请求被禁止",  
        40102: "机器人繁忙",  
        40199: "内部错误",  
        40200: "解析任务链错误",  
        40201: "任务链名字非法",  
        40202: "任务链不存在",  
        40203: "任务链正在执行中",  
        40300: "设置参数类型错误",  
        40301: "设置的参数不存在",  
        40302: "设置参数出错",  
        40310: "设置并保存参数类型错误",  
        40311: "设置并保存参数不存在",  
        40312: "设置并保存参数出错",  
        40320: "重载的参数类型错误",  
        40321: "重载的参数不存在",  
        40322: "重载参数出错",  
        40400: "获取控制权错误",  
        40401: "释放控制权错误",  
        41000: "初始化状态错误",  
        41001: "地图载入状态错误",  
        41002: "重定位状态错误",  
        41003: "找不到重定位的 robotHome",  
        41004: "置信度过低",  
        41100: "找不到起点",  
        41101: "找不到准备点",  
        41102: "找不到终点",  
        41103: "充电"  
    }

    def __init__(self,ret) -> None:
        self.detail = "失败:" +self.errors[ret.get('ret_code')]
        super().__init__(self.status_code,detail= self.detail)

